Pular para o conteúdo

Removendo ^M do VI

Dica publicada em Linux / Software
César Frias btc_cesar
Hits: 33.688 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Removendo ^M do VI

Utilizando o editor de textos vi é comum acharmos no final das linhas de alguns arquivos os caracteres ^M, isso acontece pois no DOS/Windows o <enter> é representado por 2 caracteres (retorno de cursor e quebra de linha) enquanto no Linux ele é representado apenas pela quebra de linha.

Pois bem, se nós usarmos o comando "<Esc>+/^M" (sem as aspas) o vi irá procurar por linhas que comecem com a letra M, pois isso é uma expressão regular e o caractere "^" representa início de linha.

A forma correta a se usar seria a seguinte "<Esc>+/<Ctrl>V<Ctrl>M", assim iremos achar todos os ^M que desejamos no final das linhas.

Porém o nosso objetivo aqui não é simplesmente achar os ^M e sim retirá-los e de quebra adicionarmos um mapeamento no arquivo .vimrc, portanto iremos usar o seguinte comando "<Esc>:%s/\r//g", assim iremos substituir todas as ocorrências do ^M até o final do arquivo.

Apenas substituí <Ctrl>V<Ctrl>M pelo \r, pois eles representam a mesma coisa.

Adicionando agora o mapeamento ao .vimrc:

Basta abrir o arquivo .vimrc (se ele não existir, crie-o) para edição e adicionar ao final dele essas 2 linhas:

" TiraM: Mapeamento para tirar os ^M do final das linhas
map ,tm :%s/\r//g
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

A primeira linha é apenas um comentário representado pelo " no início dela, já a segunda é a que realmente nos interessa, é ela que faz a "mágica".

Sempre que nos depararmos agora com algum arquivo cheio de ^M no final das linhas, basta pressionarmos "<Esc>,tm", assim chamaremos o mapeamento ",tm" que acabamos de criar e nos livraremos dos malditos ^M.

Um abraço a todos,

César Frias.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Instalando o Firefox via pacote .deb no Ubuntu 24.04 LTS

Vídeo aula: Como instalar o Skype no Ubuntu 13.10

Habilitar funcionamento do 3D status map do Nagios

Descompactar .tar.gz, tar.bz2, tar, rar e zip corretamente

Criando um visualizador de imagens no Lazarus

#2 Comentário enviado por enzo em 21/02/2010 - 21:58h
Cesar


O VI também tem um outra opção:

<ESC> :set fileformat=unix

isto muda o arquivo para o formato unix,

Caso você queira um arquivo com o formato DOS basta executar:

<ESC> :set fileformat=dos

Espero ter contribuído.


Enzo
#3 Comentário enviado por joaomarcoslemos em 30/08/2011 - 12:13h
consegui arrumar o arquivo da seguinte forma:

:1,$ s/^M/\r/g

onde ^M digitei ctrl+v ctrl+m

[]s

Joao
#4 Comentário enviado por btc_cesar em 30/08/2011 - 22:18h
Boa noite João,

o seu comando também funciona, pois ctrl+v ctrl+m representa o ^M que queremos e no ínicio dele você diz que
quer substituir desde a linha 1 até o final do arquivo ( o que pode ser substituído por %) :D

Porém aqui na dica eu adicionei um mapeamento no .vimrc, para que ao digitar ,tm ele retire automaticamente os ^M.

Espero que a dica tenha sido útil :)

Abraços
César Frias
#5 Comentário enviado por zcasmarcos em 11/03/2016 - 12:06h
Ola!
Espero conseguir resposta!
Tudo joias?
A retirada do ˆM foi feita com êxito. Mas agora entra mais um detalhe.
Como acrescento em cada ˆM encontrado uma quebra de linha utilizando o vi ?

Muito Obrigado

Marcos

Contribuir com comentário

Entre na sua conta para comentar.